У некоторых виртуальных машин на платформе VMware vSphere может оказаться такая ситуация, что на одном виртуальном диске VMDK окажутся 2 логических раздела - например, диски C и D в Windows. Произойти это может вследствие P2V-миграции физического сервера в ВМ или изначальной конфигурации машины.
При этом, для каких-то целей вам может потребоваться эти логические диски разнести по двум файлам VMDK (например, для целей хранения дисков на разных "ярусах" хранения). Решить эту проблему весьма просто с помощью VMware vCenter Converter (мы писали о нем тут).
Делается так это все так:
Начинаем процесс конвертации виртуальной машины
Идем в мастере конверсии в Options
Для раздела "Data to copy" выбираем "Edit"
Выбираем опцию "Data copy type" и меняем ее на "Select volumes to copy".
Далее на вкладке "Target Layout" в представлении "Advanced" настраиваем разнесение логических дисков по разным vmdk, как на картинке ниже.
Многие знают, что VMware vSphere версий 5.0 (начиная с Update 1) и 5.1 в полном объеме поддерживают Windows Server 2012 и Windows 8 в гостевых ОС виртуальных машин. Однако, еще далеко не во всех компаниях установлены последние версии гипервизора VMware ESXi - особенно в крупных организациях еще много где используют версию ESX/ESXi 4.x.
При попытке установить Windows Server 2012 и Windows 8 в виртуальной машине ESX/ESXi 4.x, выбрав в качестве гостевой ОС Microsoft Windows Server 2008 R2, администратор получит вот такую ошибку:
Your PC ran into a problem that it couldn't handle, and now it needs to restart
You can search for the error online: HAL_INITIALIZATION_FAILED
Решить эту проблему очень просто:
Создаем новую ВМ в vSphere Client.
В качестве типа гостевой ОС (Guest Operating System) выбираем Microsoft Windows Server 2008 R2 (64-bit).
Скачиваем вот этот файл bios и кладем его в папку с виртуальной машиной
Далее в конфигурационный файл .vmx в папке с ВМ добавляем следующие строчки:
Не все администраторы платформы VMware vSphere в курсе, что на сервере VMware vCenter могут быть отключены различные фильтры хранилищ для хостов ESXi, что может оказаться полезным в нестандартных ситуациях.
Эти фильтры могут настраиваться через консоль vCenter в разделе расширенных настроек. Чтобы иметь возможность настраивать фильтры нужно выбрать пункт меню Administration > vCenter Server Settings. Далее в списке настроек нужно выбрать Advanced Settings.
На данный момент актуально четыре фильтра для хранилищ, включенных на хостах ESXi по умолчанию. Они помогают предотвращать ошибки, которые могут привести к повреждению и потере данных в исключительных ситуациях. Однако (зачастую, временно) эти фильтры можно отключить, но делать это нужно обдуманно, при этом не нужно забывать их снова включать.
В таблице ниже представлены назначение фильтров и конфигурация их выключения на сервере vCenter.
Название фильтра
Назначение фильтра
Конфигурация выключения
VMFS Filter
Этот фильтр не позволяет при выборе LUN для нового тома VMFS выбрать существующий и используемый VMFS-том. Действует это для любого хоста, управляемого сервером vCenter. Также этот фильтр работает при добавлении RDM-диска виртуальной машине - он не позволит выбрать существующий VMFS-том для этих целей.
config.vpxd.filter.vmfsFilter = false
RDM Filter
Этот фильтр отсеивает те LUN, которые используются как RDM-диски для виртуальных машин на каком-либо из хостов ESXi, управляемых vCenter. В среде vSphere две виртуальные машины не могут иметь непосредственный доступ к одному LUN через 2 разных mapping-файла. Однако через один такой файл - могут. Соответственно, если вам нужны две машины, использующих один RDM-том (например, для кластеров MSCS), то отключение этого фильтра может понадобиться.
config.vpxd.filter.rdmFilter = false
Same Host and Transports Filter
Этот фильтр не позволяет расширять существующий VMFS-том несовместимыми экстентами. Таким несовместимым томом может быть том, доступный только части хостов ESXi, а также LUN, имеющий не поддерживаемый на всех хостах тип хранилища, протокол и т.п.
Когда вы расширяете, растягиваете, удаляете хранилища или добавляете extent'ы, то автоматически вызывается rescan всех HBA-адаптеров, чтобы актуализировать конфигурацию хранилищ. Однако в большой инфраструктуре это может привести к так называемому "rescan storm", следствием чего может стать падение производительности. Отключение этого фильтра позволит выполнять эти действия без операций рескана. Это может оказаться очень удобным, когда вам в целях тестирования требуется производить описанные выше операции с виртуальными хранилищами.
config.vpxd.filter.hostRescanFilter = false
Ну и видео для тех, кому удобнее воспринимать из визуального ряда:
Иногда попытка включить фильтр после его временного отключения приводит к ошибке. Тогда нужно на сервере vCenter в файле vpxd.cfg найти и поправить соответствующую строчку в конфигурационном xml-файле:
При внесении описанных здесь изменений не обязательно перезапускать сервер vCenter - так как это всего лишь фильтры для мастера добавления хранилищ, они будут применены сразу же. Однако будьте осторожны с изменением фильтров, так как можно потерять данные.
Таги: VMware, vSphere, Storage, Troubleshooting, ESXi, VMachines, Обучение
Недавно мы писали про сетевой траблшутинг хостов VMware ESXi, где упоминали утилиту vmkping, с помощью которой можно пинговать какой-нибудь IP-адрес через порт VMkernel. Но как быть если у вас 2 таких порта?
Через какой адаптер пойдет пинг?
Для этого случая есть параметр -I, который определяет через какой интерфейс пинговать (в нашем случае vmk1, а не vmk2):
Многие из вас, кто использует кластеризацию MSCS в виртуальных машинах на платформе VMware vSphere, возможно, замечали, что когда используется кластер Across Boxes (т.е. между ВМ на разных хостах), то перезагрузка хоста VMware ESXi занимает весьма продолжительное время (иногда - до получаса).
Дело здесь в том, что поскольку узлы кластера виртуальных машин используют диск RDM, который напрямую пробрасывается в виртуальную машину и для него используются SCSI reservations, то хост ESXi тратит много времени на обнаружение параметров устройства.
Избежать этого очень просто. Для этого:
В ESX / ESXi 4.0 нужно выставить минимальное значение на число повторов операций при обнаружении конфликтов SCSI-резерваций (в Advanced Settings хостов):
Scsi.UWConflictRetries = 80
Для ESXi 4.1 появилась дополнительная опция, которая уменьшает таймаут при загрузке в случае обнаружения конфликта. Это значение необходимо выставить в:
Scsi.CRTimeoutDuringBoot = 1
Начиная с ESXi 5.0, опция Scsi.CRTimeoutDuringBoot больше не действует. Теперь нужно использовать команды множества esxcli storage. Для этого:
Сначала надо найти NAA-идентификатор устройства (физического LUN, на котором используется RDM). Для этого нужно зайти в управление путями до устройства (Manage Paths) и посмотреть на строчку, начинающуюся с naa...... - это и есть naa id.
Далее в консоли сервера ESXi нужно выполнить следующую команду (она пометит LUN как изначально зарезервированный):
Оказывается, один из самых частых вопросов по продукту для виртуализации настольных ПК VMware View - это как можно показать PCoIP-сессию пользователя через средство управления vSphere Client (по умолчанию там показывается чистый экран).
Для этого необходимо поменять настройку в шаблоне групповой политики (GPO) pcoip.adm. Находится этот шаблон на View Connection Server в папке:
Нужно запустить Group Policy Management, затем создать или привязать к организационной единице AD пула виртуальных ПК групповую политику. В контекстном меню данной групповой политики выбрать пункт "Edit…". В появившемся окне "Group Policy Management Editor" в контекстном меню пункта "Computer Configuration –> Policies –> Administrative Templates" выбрать пункт "Add/Remove Templates…". В появившемся окне "Add/Remove Templates" нажать на кнопку "Add.." и выбрать файл с ADM-шаблоном "pcoip.adm".
Далее нужно установить Enable для настройки "Enable access to PCoIP session from a vSphere console":
Затем нужно применить политики и презагрузить десктоп VMware View. После этого в vSphere Client в консоли виртуальной машины вы будете наблюдать то же самое, что и для VMware View Client:
Более подробно о настройках шаблона pcoip.adm можно узнать из документации.
Если вы попробуете импортировать виртуальную машину (или Virtual Appliance), которая была создана для настольных платформ виртуализации (например, VMware Workstation в формате 2gbsparse), в VMware vSphere 5.1 с помощью утилиты vmkfstools, то у вас это не выйдет. Вы получите подобное сообщение:
Failed to open 'VM-name.vmdk': The system cannot find the file specified (25).
Ошибка может быть и такой:
File [VMFS volume]\VM-name.vmdk was not found.
И такой:
Error Stack:
An error was received from the ESX host while powering on VM VM-name
Cannot open the disk '/vmfs/volumes/Datastore/VM-name/VM-name.vmdk' or one of the snapshot disks it depends on.
The system cannot find the file specified.
VMware ESX cannot find the virtual disk '/vmfs/volumes/Datastore/VM-name/VM-name.vmdk'. Verify the path is valid and try again.
Все это из-за одного и того же - в VMware vSphere 5.1 убрали автоматическую загрузку модуля multiextent, который и отвечает как раз за конверсию виртуальных дисков с hosted-платформ VMware в формат VMFS. Чтобы загрузить этот модуль нужно выполнить простую команду:
# vmkload_mod multiextent
Ну а чтобы выгрузить:
# vmkload_mod -u multiextent
Делать это можно смело, так как этот модуль отвечает только за работу с Non-VMFS дисками ВМ.
Недавно компания HP выпустила первую версию продукта Virtualization Performance Viewer 1.0, предназначенного для обнаружения, диагностики и решения проблем в виртуальных средах. Virtualization Performance Viewer поставляется в бесплатном (ограниченная функциональность) и коммерческом изданиях.
HP Virtualization Performance Viewer поддерживает гипервизоры VMware vSphere и Microsoft Hyper-V, и доступен как виртуальный модуль (Virtual Appliance) на базе CentOS. Бесплатная версия также доступна как приложение для ОС Windows.
Основные возможности продукта:
Просмотр состояния и производительности виртуальной инфраструктуры, а также предоставление информации о ее компонентах в виде "Treemaps"
Утилиты для диагности и решения проблем с описанием возникших неполадок
Возможность предвидеть проблемы недостатка мощностей, а также идентифицировать недогруженные и перегруженные системы
Отличия бесплатного и коммерческого изданий:
Скачать HP Virtualization Performance Viewer можно по этой ссылке.
Оказывается, еще в сентябре компания VMware обратила внимание пользователей на один интересный продукт - VMware vCenter Support Assistant. Он призван помочь пользователям в сборе и отправке диагностических данных о своей виртуальной инфраструктуре, а также обращении в техническую поддержку.
Продукт будет представлять собой виртуальный модуль (Virtual Appliance) для VMware vCenter и позволит грамотно оформлять Support Request'ы, а также взаимодействовать с инженерами техподдержки VMware в удобном интерфейсе. Сейчас он находится в стадии бета-тестирования.
vCenter Support Assistant позволит оформлять запросы в техподдержку не только для VMware vSphere, но для любого другого продукта VMware, для которого куплена поддержка на базе SnS или по инцидентам. На данный момент поддерживаются версии VMware vSphere 5.1, 5.0 и 4.1.
После установки, VMware vCenter Support Assistant появится как плагин к vSphere Client:
Дальше логинимся:
и создаем Support Request:
После детального описания проблемы (суть, критичность, категория, статьи KB) можно собрать и прикрепить диагностическую информацию:
После того, как запрос в техподдержку будет сформирован, а необходимые логи и конфиги загружены, можно посмотреть статус своего обращения:
В целом, должна быть удобная штука, особенно для больших компаний, где много администраторов, виртуальных машин и, соответственно, проблем. Для записи в бета-тестеры продукта VMware vCenter Support Assistant нужно использовать эту ссылку.
В новой версии VMware vSphere 5.1 для хостов ESXi 5.1 в консольном интерфейсе управления esxcli появилось множество нововведений. Во-первых, появилось 82 новых команды esxcli:
7 в категории hardware
2 в категории sched
47 в категории network
15 в категории storage
11 в категории system
Во-вторых, компания VMware выпустила вот такой замечательный постер, из которого можно узнать, как управлять хостом ESXi 5.1 через esxcli:
Теперь через esxcli можно делать операции shutdown, reboot и перевод хоста в maintenance mode.
Например, чтобы узнать, находится ли хост уже в режиме обслуживания нужно выполнить команду:
# esxcli system maintenanceMode get
Disabled
#
А чтобы перевести хост в maintenance mode нужно выполнить:
# esxcli system maintenanceMode set -e true -t 0
#
# esxcli system maintenanceMode get
Enabled
#
Выключить хост ESXi можно так (-d 10 это то же, что и --delay="10", а -r это --reason):
# esxcli system shutdown poweroff -d 10 --reason="Hardware maintenance"
delay здесь задается в секундах.
Перезагрузить можно так:
# esxcli system shutdown reboot -d 10 –r "Patches applied"
Но самое интересное, что теперь появились команды, которые позволяют посмотреть отличия Advanced Settings от дефолтных настроек на хосте ESXi 5.1, что очень полезно при поиске и решении проблем с хост-сервером и его виртуальными машинами. Делается это с помощью команды (-d это то же, что и --delta):
# esxcli system settings advanced list -d
Вывод, например, может быть таким:
Path: /UserVars/SuppressShellWarning
Type: integer
Int Value: 1
Default Int Value: 0
Min Value: 0
Max Value: 1
String Value:
Default String Value:
Valid Characters:
Description: Don’t show warning for enabled local and remote shell access
Здесь мы видим, какое текущее значение расширенной настройки и какое дефолтное (о настройке /UserVars/SuppressShellWarning написано тут). То же самое можно проделать и настройками VMkernel:
# esxcli system settings kernel list -d
Вывод, например, такой:
Name Type Description Configured Runtime Default
————— — ———————— ——— —— ——
smallFontForTTY Bool Use 50-line font for tty. true FALSE FALSE
Это значит, что была изменена настройка smallFontForTTY.
Мы уже писали о новых возможностях плафтормы виртуализации VMware vSphere 5.1, а также о принципах лицензирования продукта. Среди новых функций сетевого взаимодействия в vSphere 5.1 появились возможности Network Health Check, обеспечивающие проверку согласованности параметров на виртуальных распределенных коммутаторах VDS и физических коммутаторах, к которым подключены сетевые адаптеры серверов ESXi.
В рамках Network Health Check отслеживается корректность настройки следующих параметров (с интервалом в 1 минуту) для физических и виртуальных коммутаторов:
VLAN
MTU
Network adapter teaming
Делается это средствами Layer 2 Ethernet probing. Сегодня мы расскажем о том, как выглядит на практике Network Health Check при проверке VLAN, основываясь на материалах блогера Rickard Nobel. Для начала в vSphere Web Client для коммутатора VDS 5.1 зайдем на вкладку "Manage" в раздел "Health check":
Здесь мы видим, что функции Health check включены только для параметров VLAN и MTU. Частая проблема администраторов vSphere заключается в том, что настройки VLAN, сделанные в портгруппах на виртуальном коммутаторе VDS, не совпадают с настройками VLAN на портах физических свичей.
Например, для портгруппы VDS настроен VLAN 200, а сетевой администратор, который настраивал VLAN для портов физических коммутаторов, куда ведут аплинки серверов ESXi, пропустил один из портов физического коммутатора при настройке для пропускания фреймов VLAN 200. Вследствие этого, виртуальные машины могут работать хорошо, однако функции vMotion/DRS могут быть частично недоступны для некоторых из хостов.
Собственно, чтобы вовремя обнаружить такую ошибку, мы и включаем Network Health Check:
Теперь хосты ESXi будут слать броадкасты на все свои адаптеры vmnic, привязанные к VDS, и отслеживать, не дропают ли их порты физических коммутаторов. Эти фреймы будут тэгированы всеми VLAN ID, которые назначены для групп портов VDS. В нашем случе - это VLAN 100 и VLAN 200, которые мы видим в списке портгрупп:
Теперь мы видим новую вкладку "Monitor", где можно отслеживать жизнедеятельность VLAN на хостах. Заходим в подраздел "Health":
Здесь мы видим, что для одного хоста с настройками VLAN что-то не так. Смотрим детали:
Здесь мы видим, что для аплинков vmnic2 и vmnic3 не работает VLAN 200. Теперь неплохо бы в настройках VDS включить поддержку LLDP (режим Both или Advertise), чтобы определить порты физического коммутатора, с которыми связана данная проблема для конкретных аплинков, и не бегать в серверную.
Теперь на физическом коммутаторе смотрим порты, куда включены vmnic2 и vmnic3 командой (в данном случае команды для коммутатора HP):
# show lldp info remote
Мы видим порты свича, куда включены проблемные аплинки хоста. Теперь смотрим, для каких портов настроен VLAN 200 командой:
# show vlan 200
Видим, что VLAN 200 пропускается только на порту A13, а порт A14 не пропускает двухсотый VLAN. Исправляем ситуацию, добавляя VLAN 200 для порта A14, командой:
# vlan 200 tag A14
И выводим снова информацию по VLAN 200:
Теперь оба порта на физическом коммутаторе принимают кадры с VLAN ID 200.
Откроем vSphere Web Client for ESXi 5.1 и посмотрим, в каком состоянии теперь находятся аплинки VDS:
Теперь мы видим, что все корректно настроено, и порты физических коммутаторов пропускают нужные VLAN от обозначенных сетевых адаптеров хостов в портгруппах VDS.
Как мы уже писали в одной из статей, в VMware vSphere 5 при работе виртуальных машин с хранилищами могут возникать 2 похожих по признакам ситуации:
APD (All Paths Down) - когда хост-сервер ESXi не может получить доступа к устройству ни по одному из путей, а также устройство не дает кодов ответа на SCSI-команды. При этом хост не знает, в течение какого времени будет сохраняться такая ситуация. Типичный пример - отказ FC-коммутаторов в фабрике или выход из строя устройства хранения. В этом случае хост ESXi будет периодически пытаться обратиться к устройству (команды чтения параметров диска) через демон hostd и восстановить пути. В этом случае демон hostd будет постоянно блокироваться, что будет негативно влиять на производительность. Этот статус считается временным, так как устройство хранения или фабрика могут снова начать работать, и работа с устройством возобновится.
В логе /var/log/vmkernel.log ситуация APD выглядит подобным образом:
2011-07-30T14:47:41.187Z cpu1:2049)WARNING: NMP: nmp_IssueCommandToDevice:2954:I/O could not be issued to device "naa.60a98000572d54724a34642d71325763" due to Not found
2011-07-30T14:47:41.187Z cpu1:2049)WARNING: NMP: nmp_DeviceRetryCommand:133:Device "naa.60a98000572d54724a34642d71325763": awaiting fast path state update for failover with I/O blocked. No prior reservation exists on the device.
2011-07-30T14:47:41.187Z cpu1:2049)WARNING: NMP: nmp_DeviceStartLoop:721:NMP Device "naa.60a98000572d54724a34642d71325763" is blocked. Not starting I/O from device.
2011-07-30T14:47:41.361Z cpu1:2642)WARNING: NMP: nmpDeviceAttemptFailover:599:Retry world failover device "naa.60a98000572d54724a34642d71325763" - issuing command 0x4124007ba7c0
2011-07-30T14:47:41.361Z cpu1:2642)WARNING: NMP: nmpDeviceAttemptFailover:658:Retry world failover device "naa.60a98000572d54724a34642d71325763" - failed to issue command due to Not found (APD), try again...
2011-07-30T14:47:41.361Z cpu1:2642)WARNING: NMP: nmpDeviceAttemptFailover:708:Logical device "naa.60a98000572d54724a34642d71325763": awaiting fast path state update...
2011-07-30T14:47:42.361Z cpu0:2642)WARNING: NMP: nmpDeviceAttemptFailover:599:Retry world failover device "naa.60a98000572d54724a34642d71325763" - issuing command 0x4124007ba7c0
2011-07-30T14:47:42.361Z cpu0:2642)WARNING: NMP: nmpDeviceAttemptFailover:658:Retry world failover device "naa.60a98000572d54724a34642d71325763" - failed to issue command due to Not found (APD), try again...
2011-07-30T14:47:42.361Z cpu0:2642)WARNING: NMP: nmpDeviceAttemptFailover:708:Logical device "naa.60a98000572d54724a34642d71325763": awaiting fast path state update...
Ключевые слова здесь: retry, awaiting. Когда вы перезапустите management agents, то получите такую вот ошибку:
Not all VMFS volumes were updated; the error encountered was 'No connection'.
Errors:
Rescan complete, however some dead paths were not removed because they were in use by the system. Please use the 'storage core device world list' command to see the VMkernel worlds still using these paths.
Error while scanning interfaces, unable to continue. Error was Not all VMFS volumes were updated; the error encountered was 'No connection'.
В этом случае надо искать проблему в фабрике SAN или на массиве.
PDL (Permanent Device Loss) - когда хост-серверу ESXi удается понять, что устройство не только недоступно по всем имеющимся путям, но и удалено совсем, либо сломалось. Определяется это, в частности, по коду ответа для SCSI-команд, например, вот такому: 5h / ASC=25h / ASCQ=0 (ILLEGAL REQUEST / LOGICAL UNIT NOT SUPPORTED) - то есть такого устройства на массиве больше нет (понятно, что в случае APD по причине свича мы такого ответа не получим). Этот статус считается постоянным, так как массив ответил, что устройства больше нет.
А вообще есть вот такая табличка для SCSI sense codes, которые вызывают PDL:
В случае статуса PDL гипервизор в ответ на запрос I/O от виртуальной машины выдает ответ VMK_PERM_DEV_LOSS и не блокирует демон hostd, что, соответственно, не влияет на производительность. Отметим, что как в случае APD, так и в случае PDL, виртуальная машина не знает, что там произошло с хранилищем, и продолжает пытаться выполнять команды ввода-вывода.
Такое разделение статусов в vSphere 5 позволило решить множество проблем, например, в случае PDL хост-серверу больше не нужно постоянно пытаться восстановить пути, а пользователь может удалить сломавшееся устройство с помощью операций detach и unmount в интерфейсе vSphere Client (в случае так называемого "Unplanned PDL"):
В логе /var/log/vmkernel.log ситуация PDL (в случае Unplanned PDL) выглядит подобным образом:
2011-08-09T10:43:26.857Z cpu2:853571)VMW_SATP_ALUA: satp_alua_issueCommandOnPath:661: Path "vmhba3:C0:T0:L0" (PERM LOSS) command 0xa3 failed with status Device is permanently unavailable. H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x25 0x0.
2011-08-09T10:43:26.857Z cpu2:853571)VMW_SATP_ALUA: satp_alua_issueCommandOnPath:661: Path "vmhba4:C0:T0:L0" (PERM LOSS) command 0xa3 failed with status Device is permanently unavailable. H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x25 0x0.
2011-08-09T10:43:26.857Z cpu2:853571)WARNING: vmw_psp_rr: psp_rrSelectPathToActivate:972:Could not select path for device "naa.60a98000572d54724a34642d71325763".
2011-08-09T10:43:26.857Z cpu2:853571)WARNING: ScsiDevice: 1223: Device :naa.60a98000572d54724a34642d71325763 has been removed or is permanently inaccessible.
2011-08-09T10:43:26.857Z cpu3:2132)ScsiDeviceIO: 2288: Cmd(0x4124403c1fc0) 0x9e, CmdSN 0xec86 to dev "naa.60a98000572d54724a34642d71325763" failed H:0x8 D:0x0 P:0x0
2011-08-09T10:43:26.858Z cpu3:2132)WARNING: NMP: nmp_DeviceStartLoop:721:NMP Device "naa.60a98000572d54724a34642d71325763" is blocked. Not starting I/O from device.
2011-08-09T10:43:26.858Z cpu2:2127)ScsiDeviceIO: 2316: Cmd(0x4124403c1fc0) 0x25, CmdSN 0xecab to dev "naa.60a98000572d54724a34642d71325763" failed H:0x1 D:0x0 P:0x0 Possible sense data: 0x5 0x25 0x0.
2011-08-09T10:43:26.858Z cpu2:854568)WARNING: ScsiDeviceIO: 7330: READ CAPACITY on device "naa.60a98000572d54724a34642d71325763" from Plugin "NMP" failed. I/O error
2011-08-09T10:43:26.858Z cpu2:854568)ScsiDevice: 1238: Permanently inaccessible device :naa.60a98000572d54724a34642d71325763 has no more open connections. It is now safe to unmount datastores (if any) and delete the device.
2011-08-09T10:43:26.859Z cpu3:854577)WARNING: NMP: nmpDeviceAttemptFailover:562:Retry world restore device "naa.60a98000572d54724a34642d71325763" - no more commands to retry
Ключевое слово здесь - permanently.
Становится понятно, что в случае, когда устройство хранения (LUN) реально сломалось или удалено сознательно, лучше всего избежать ситуации APD и попасть в статус PDL. Сделать это удается хост-серверу ESXi не всегда - по прежнему в vSphere 5.0 Update 1 это обрабатывается в ограниченном количестве случаев, но в vSphere 5.1 обещают существенно доработать этот механизм.
Также есть Advanced Settings на хосте ESXi, которые позволяют управлять дальнейшей судьбой машины, которая оказалась жертвой ситуации PDL. В частности есть 2 следующие расширенные настройки (начиная с vSphere 5.0 Update 1) - первая в категории "Disk", а вторая в расширенных настройках кластера HA:
disk.terminateVMonPDLDefault - если эта настройка включена (True), то в ситуации PDL для устройства, где находится ВМ, эта машина будет выключена. Настройка задается на уровне хоста ESXi и требует его перезагрузки для ее применения.
das.maskCleanShutdownEnabled - это настройка, будучи включенной (True), позволяет механизму VMware HA приступить к восстановлению виртуальной машины. Соответственно, если она выключена, то HA проигнорирует выключение виртуальной машины в случае ее "убийства" при включенной первой настройке.
Рекомендуется, чтобы обе эти настройки были включены.
Все описанные выше механизмы могут очень пригодиться при построении и обработке сбоев в "растянутых кластерах" VMware HA, построенных между географически разнесенными датацентрами. Об этом всем детально написано в документе "VMware vSphere Metro Storage Cluster Case Study".
Таги: VMware, vSphere, Storage, Performance, Troubleshooting, HA, ESXi
При эксплуатации виртуальной инфраструктуры VMware vSphere иногда случается ситуация, когда виртуальную машину нельзя включить из-за того, что ее какой-нибудь из ее файлов оказывается залоченным. Происходит это при разных обстоятельствах: неудачной миграции vMotion / Storage vMotion, сбоях в сети хранения и прочих.
Наиболее распространенная ошибка при этом выглядит так:
Could not power on VM: Lock was not free
Встречаются также такие вариации сообщений и ошибок при попытке включения виртуальной машины, которое зависает на 95%:
Unable to open Swap File
Unable to access a file since it is locked
Unable to access a file <filename> since it is locked
Unable to access Virtual machine configuration
Ну а при попытке соединения с консолью ВМ получается вот такое:
Error connecting to <path><virtual machine>.vmx because the VMX is not started
Все это симптомы одной проблемы - один из следующих файлов ВМ залочен хост-сервером VMware ESXi:
<VMNAME>.vswp
<DISKNAME>-flat.vmdk
<DISKNAME>-<ITERATION>-delta.vmdk
<VMNAME>.vmx
<VMNAME>.vmxf
vmware.log
При этом залочил файл не тот хост ESXi, на котором машина зарегистрирована. Поэтому решение проблемы в данном случае - переместить ВМ холодной миграций на тот хост, который залочил файл и включить ее там, после чего уже можно переносить ее куда требуется. Но как найти тот хост ESXi, который залочил файл? Об этом и рассказывается ниже.
Поиск залоченного файла ВМ
Хорошо если в сообщении при запуске виртуальной машины вам сообщили, какой именно из ее файлов оказался залоченным (как на картинке выше). Но так бывает не всегда. Нужно открыть лог vmware.log, который расположен в папке с виртуальной машиной, и найти там строчки вроде следующих:
Failed to initialize swap file : Lock was not free
Тут видно, что залочен .vswp-файл ВМ.
За логом на экране можно следить командой (запустите ее и включайте ВМ):
tail /vmfs/volumes/<UUID>/<VMDIR>/vmware.log
Проверка залоченности файла ВМ и идентификация владельца лока
После того, как залоченный файл найден, нужно определить его владельца. Сначала попробуем команду touch, которая проверяет, может ли бы обновлен time stamp файла, т.е. можно ли его залочить, или он уже залочен. Выполняем следующую команду:
# touch /vmfs/volumes/<UUID>/<VMDIR>/<filename>
Если файл уже залочен, мы получим вот такое сообщение для него:
В значении "owner" мы видим MAC-адрес залочившего файл хоста VMware ESXi (выделено красным). Ну а как узнать MAC-адрес хоста ESXi - это вы должны знать. Дальше просто делаем Cold Migration виртуальной машины на залочивший файл хост ESXi и включаем ее там.
Те, кто хочет дальше изучать вопрос, могут проследовать в KB 10051.
Как знают все администраторы VMware vSphere, виртуальный диск виртуальной машины представляется как минимум в виде двух файлов:
<имя ВМ>.vmdk - заголовочный, он же индексный, он же файл-дескриптор виртуальго диска, который содержит информацию о геометрии диска, его тип и другие метаданные
<имя ВМ>-flat.vmdk - непосредственно диск с данными ВМ
Практика показывает, что нередки ситуации, когда администраторы VMware vSphere теряют заголовочный файл VMDK по некоторым причинам, иногда необъяснимым, и остается только диск с данными ВМ (неудивительно, ведь в него идет запись, он залочен).
Ниже приведена краткая процедура по восстановлению дескрипторного VMDK-файла для существующего flat-VMDK, чтобы восстановить работоспособность виртуальной машины. Подробную инструкцию можно прочитать в KB 1002511.
Итак, для тех, кто любит смотреть видеоинструкции:
Для тех, кто не любит:
1. Определяем точный размер в байтах VMDK-диска с данными (чтобы геометрия нового созданного дескриптора ему соответствовала):
ls -l <имя диска>-flat.vmdk
2. Создаем новый виртуальный диск (цифры - это полученный размер в байтах, тип thin для экономии места, lsilogic - контроллер):
vmkfstools -c 4294967296 -a lsilogic -d thin temp.vmdk
3. Переименовываем дескрипторный VMDK-файл созданного диска в тот файл, который нам нужен для исходного диска. Удаляем только что созданный пустой диск данных, который уже не нужен (temp-flat.vmdk).
Иногда бывает необходимо поменять IP адрес сервера vCenter Server в продуктивной, а чаще в тестовой, среде. Это не так просто - хосты ESXi, подключенные к vCenter, переходят в состояние Disconnected. Ниже приведен способ восстановления конфигурации vCenter, хостов ESXi, Update Manager и Auto Deploy после изменения IP-адреса vCenter.
1. Поменяйте IP-адрес сервера vCenter и переприсоедините его к домену Active Directory.
2. После этого произойдут следующие вещи:
Хосты ESXi перейдут в статус "disconnected" - это происходит потому, что каждый хост ESXi хранит IP-адрес vCenter в конфигурационном файле vpxa.cfg
Перестанет работать vSphere Update Manager - по той же причине, только у него есть файл extension.xml
Перестанет работать vSphere Auto Deploy - у него файлик vmconfig-autodeploy.xml
3. Для переприсоединения хоста ESXi к серверу vCenter вы можете удалить его из окружения vCenter и добавить повторно через vSphere Client, но этот способ приведет к потере данных о производительности хоста, что не очень хорошо. Поэтому нужно сделать так:
Зайти на сервер ESXi по SSH (сначала нужно его включить)
Открыть файл /etc/vmware/vpxa/vpxa.cfg
Изменить в нем секцию <serverIP>, указав новый IP-адрес vCenter:
Перезапустить management agents на хосте ESXi 5 командой # /sbin/services.sh restart, либо из DCUI как показано на видео ниже:
За более подробной информацией обращайтесь к KB 1001493.
После всего этого перезапустите службу "VMware VirtualCenter Server" на сервере vCenter.
4. Теперь приступаем к vSphere Update Manager. Заходим на машину, где он установлен, и переходим в папку C:\Program Files (x86)\VMware\Infrastructure\Update Manager, где открываем файл extension.xml и редактируем секцию <healthUrl>, указав новый IP-адрес vCenter Server:
Теперь открываем командную строку (cmd). Переходим в папку C:\Program Files (x86)\VMware\Infrastructure\Update Manager. Там выполняем следующую команду:
где <vc_ip> = новый IP vCenter Server, а <vc_http_port> = 80. Параметры <user_name> и <password> - учетная запись администратора vCenter.
Если все прошло нормально, вывод будет выглядеть подобным образом:
Далее запускаем C:\Windows\ SysWOW64\obcad32.exe на сервере Update Manager. Там переходим на вкладку "System DSN" и нажимаем кнопку Configure. Идем до конца мастера по шагам и успешно проходим тест:
Пробуем запустить службу VMware vSphere Update Manager Service и получаем ошибку:
There was an error connecting to VMware vSphere Update Manager – [vc5:443]. Fault.HostNotReacable.summary
Поэтому переходим в папку C:\Program Files (x86)\VMware\Infrastructure Update Manager и открываем файл vci-integrity.xml, где в секции <vpxdLocation> вводим новый IP-адрес vCenter.
Теперь перезапускаем VMware vSphere Update Manager Service и включаем VMware vSphere Update Manger Extension в vSphere Client. После этого все должно заработать.
О снапшотах виртуальных машин VMware vSphere мы уже много писали (например, можно пискать по тэгу "Snapshot"). Постараемся в этой заметке просуммировать информацию о том, что из себя представляют файлы снапшотов виртуальных машин vSphere 5 и как они обрабатываются.
Для того, чтобы снять снапшот виртуальной машины (virtual machine snapshot), можно кликнуть на ней правой кнопкой в vSphere Client и выбрать соответствующий пункт "Take Snapshot" из контекстного меню:
Далее появится окно снятия снапшота ВМ:
Обратите внимание на опцию "Snapshot the virtual machine's memory". Если эту галку убрать, то снапшот не будет содержать состояние памяти виртуальной машины, т.е. при откате к нему ВМ будет в выключенном состоянии. Плюс такого снапшота - он создается намного быстрее, поскольку не надо сохранять память машины в отдельный файл.
Вторая опция - это возможность "заморозки" файловой системы виртуальной машины на время создания снапшота. Она доступна только при условии установленных в гостевой ОС VMware Tools, в составе которых идет Sync Driver. Эта функциональность нужна для создания консистентного состояния виртуальной машины для снапшота на уровне файловой системы, что особенно необходимо при создании резервных копий (используют все системы резервного копирования для виртуализации, например, Veeam Backup and Replication). Данная возможность (quiesce) поддерживается не всегда - об условиях ее применения можно прочитать тут.
После создания снапшота заглянем в Datastore Browser на хосте VMware ESXi через vSphere Client:
Выделенные зеленым объекты - это абстрации двух снапшотов виртуальных машин. Чтобы понять, что собой представляют эти абстрации, откроем каталог с виртуальной машины в консоли (Putty по SSH):
Здесь мы уже видим, что снапшот на самом деле - это набор из четырех файлов:
<имя ВМ>-[шесть цифр]-delta.vmdk - файл данных диска отличий от базового диска
<имя ВМ>-[шесть цифр].vmdk - заголовочный файл
<имя ВМ>.vmsd - текстовый файл с параметрами снапшота (связи в дереве, SCSI-нода, время создания и т.п.)
<имя ВМ>.vmsn - файл с сохраненной памятью виртуальной машины
Самый главный файл - это, конечно, <имя ВМ>-[шесть цифр]-delta.vmdk. Он содержит блоки данных хранимые в формате так называемых redo-логов (он же дочерний диск - child disk). Он же sparse-диск, то есть диск, который использует технологию Copy-On-Write (COW) при работе с данными. Идея технологии copy-on-write — при копировании областей данных создавать реальную копию только когда ОС обращается к этим данным с целью записи. Таким образом, этот виртуальный диск содержит только измененные от родительского диска области данных (delta).
По умолчанию размер COW-операции составляет 64 КБ, что эквивалентно 128 секторам (подробнее). Но сам снапшот растет блоками данных по 16 МБ. То есть запись 64 КБ данных исходного диска может породить прирост 16 МБ данных в диске снапшота.
Следующий интересный тип файла - <имя ВМ>.vmsd. Это обычный текстовый файл, который можно открыть в редакторе и увидеть все отношения между родительским и дочерними дисками, а также другую интересную информацию:
Ну и последнее - это память виртуальной машины, хранящаяся в файле <имя ВМ>.vmsn. Его, понятное дело, может не быть, если вы создавали снапшот выключенной ВМ или убрали галку, о которой написано в самом начале.
По умолчанию снапшоты складываются в папку на VMFS-томе, где лежит виртуальная машина. Но это размещение можно сменить, поменяв рабочую папку (Working Directory) в настройках виртуальной машины через vSphere Client или в vmx-файле, для чего нужно добавить или поменять строчку:
workingDir="/vmfs/volumes/SnapVolume/Snapshots/"
Кстати, эта же папка задает и размещение файла подкачки ВМ (*.vswp). Если вы его хотите оставить на прежнем месте, нужно добавить строчку:
sched.swap.dir = "/vmfs/volumes/VM-Volume1/MyVM/"
Ну и напоследок, какие операции поддерживаются для виртуальных машин со снапшотами:
Операция
Требования и комментарии
Storage vMotion
Для хостов ESX/ESXi 4.1 или более ранних - не поддерживатся. Для ESXi 5.0 или более поздних - поддерживается.
vMotion
Поддерживается. Файлы снапшотов должны быть доступны на целевом хосте. Необходима версия hardware version 4 или более поздняя (ESX/ESXi 3.5 и выше).
Cold migration
Поддерживается для хостов ESX/ESXi 3.5 или более поздних.
Fault Tolerance
Не поддерживается. Для создания снапшота нужно отключить FT.
Hot clone
Поддерживается, но снапшотов не должно быть больше 31 штуки.
Cold clone
Поддерживается. Однако целевая ВМ будет без снапшотов.
Более подробную информацию о снапшотах можно найти в KB 1015180.
Ну и небольшая подборка ссылок по траблшутингу снапшотов в VMware vSphere:
Есть такая компания VMTurbo - они делают утилиты для виртуальной инфраструктуры VMware vSphere. Кое-что у них получается, кое-что нет, а вот на днях они выпустили 2 новых утилиты: Host Resolver 1.0 и Storage Reporter 1.0. Обе они построены на базе виртуальных модулей (Virtual Appliance) с ОС Novell SUSE Linux как часть пакета VMTurbo Integrated Management Suite для виртуальных сред VMware.
Эта утилита позволяет проанализировать окружение серверов VMware ESX, выявить проблемы в существующей инфраструктуре и предложить пути их решения - типа изменить число виртуальных CPU или переконфигурировать сетевые настройки. После этого можно исправить ошибки вручную или автоматически с помощью данной утилиты.
Эта утилита позволяет проанализировать использование виртуальными машинами систем хранения, понять основные параметры производительности при работе со стораджами (IOPS, Latency) и отслеживать основные их параметры с течением времени (заполненность, снапшоты и прочее). Кроме того, может выдавать рекомендации по необходимости внесения изменений в конфигурации хранилищ (например, расширение).
Мы уже писали о команде esxtop для серверов VMware ESX, которая позволяет отслеживать основные параметры производительности хост-сервера и его виртуальных машин. Duncan Epping недавно добавил еще несколько интересных моментов в свое руководство по работе с утилитой esxtop, некоторые из которых мы сейчас опишем.
Итак:
1. Для того, чтобы использовать пакетный режим работы esxtop (batch mode), нужно использовать ключ -b:
esxtop -b >perf.txt
Это позволит вывести результаты команды esxtop в файл perf.txt. Для задания числа хранимых итераций используйте ключ -n (например, -n 100).
Очень удобно для сбора исторических данных производительности на хосте VMware ESX.
2. Контролируйте счетчик %SYS - он показывает загрузку системных ресурсов хоста (в процентах). Рекомендуется, чтобы он не превышал 20 для системных служб.
3. Для установки частоты обновлений результатов esxtop используйте клавишу <s>, далее задавайте интервал в секундах:
В пакетном режиме этот интервал задается ключом -d (например, -d 2).
4. Для отслеживания метрик конкретной виртуальной машины можно ограничить вывод конкретным GID. Например, чтобы посмотреть ВМ с GID 63, нажмите клавишу <l> (list) и введите этот GID:
5. Чтобы ограничить количество выводимых сущностей, используйте клавишу <#>. Например, можно сделать вывод первых 5:
И сами кнопки в режиме работающей esxtop:
c = cpu
m = memory
n = network
i = interrupts
d = disk adapter
u = disk device (включая NFS-девайсы)
v = disk VM
y = power states
V = показывать только виртуальные машины
e = раскрыть/свернуть статистики CPU для конкретного GID
k = убить процесс (только для службы техподдержки!)
l = ограничить вывод конкретным GID (см. выше)
# = ограничить число сущностей (см. выше)
2 = подсветка строчки (двигает фокус вниз)
8 = подсветка строчки (двигает фокус вверх)
4 = удалить строчку из результатов вывода
f = добавить/удалить колонки
o = изменить порядок колонок
W = сохранить сделанные изменения в файл конфигурации esxtop
? = помощь для esxtop
Для обнаружения и решения проблем в инфраструктуре виртуализации настольных ПК VMware View 4.5 вам может быть полезен анализ логов. Файлы журнала (VMware View Logs) ведутся для различных компонентов продукта.
Логи в процессе установки
В папке %TEMP%\vminst.log_date_timestamp при установке будут создаваться логи для следующих компонентов View 4.5:
Connection Server
Security Server
Composer
View Agent
View Client
Кроме того, лог установщика MSI создается в файле %TEMP%\vmmsi.log_date_timestamp.
Логи Connection Server и Security Server
Данные логи создаются для ролей серверов Connection Server, Security Server и Replica Server. На всех этих хостах они находятся в следующих директориях:
<DriveLetter>:\Documents and Settings\All Users\Application Data\VMware\VDM\logs
Логи агента View Agent
Данные логи зависят от версии гостевой ОС, которая используется для виртуальных ПК. Они находятся в следующих директориях:
Windows XP – <DriveLetter>:\Documents and Settings\All Users\ApplicationData\VMware\VDM\logs
Windows Vista и Windows 7 – <DriveLetter>:\ProgramData\VMware\VDM\logs
Примечание: если вы используете диск типа User Data Disk (UDD) профиль пользователя может перенаправлять логи на UDD. В этом случае вместо <DriveLetter> укажите букву UDD.
Логи клиентов View Client и View Client with local mode
Данные логи зависят от версии ОС, в которой устанавливается клиент View. Они находятся в следующих директориях:
Windows XP –C:\Documents and Settings\%username%\Local Settings\Application Data\VMware\VDM\Logs\
Windows 7 и Windows Vista – C:\Users\%username%\AppData\VMware\VDM\Logs\
Скрипты QuickPrep/Sysprep и процесс работы с образами View Composer
Лог View Composer log содержит информацию о выполнении сценариев QuickPrep и Sysprep. Эти логи содержат информацию о времени начала и конца операций, а также сообщения об ошибках. View Composer log находится во временной папке на связанном клоне (linked clone desktop) в директории %system_drive%\Windows\Temp\vmware-viewcomposer-ga-new.log.